Lecture 9:Explainable ML(Machine Learning)

Lectured by HUNG-YI LEE (李宏毅)

Recorded by Yusheng zhao(yszhao0717@gmail.com


Lecture 9:Explainable ML(Machine Learning)Why we need Explainable ML?interpretable v.s. powerfulGoal of Explainable MLExplainable MLLocal ExplanationWhich component is critical?Limitation:Noisy GradientHow a network processes the input data?——network是怎么处理这个输入的呢Global Explanation有效的一招:Constraint from GeneratorOutlook


到目前为止,我们训练了很多类型的模型。我们有做到图像分类任务的深度学习模型,输入一张图片,它给我们答案,不单单满足于此,我们还想了解到它得到答案的理由。

Why we need Explainable ML?

interpretable v.s. powerful

以Linear model为例:interpretable往往要求模型非常简单,这导致相对的not powerful。

以Deep network为例:black boxes…难以解释,但远比Linear model更加powerful

因此我们的目标就是要找到强大并且简单到具备可解释性的模型

Goal of Explainable ML

之前几讲的作业——明确的目标:降低error rate或是提升accuracy

然而,Explainable ML的目标是不明确的。(作业也没有leaderboard)关于Explainable ML的目标以下是老师的几点看法:

Explainable ML

分成两大类:Local ExplanationGlobal Explanation

Local Explanation

对特定的某个数据要求机器(模型)做一个针对结果的解释

Why do you think is a cat?

Which component is critical?

image-20220324233322759

如上图,给机器一张图片的时候,图片里的什么东西(eye?ear?)让机器觉得这是一只猫(做出判断)

对于,推广来说可以是影像、文本等,这个可以拆成若干个component,对应来说这里每一个component就是一个pixel或者segment或者a word(token)等——这些compoment中哪些/哪一个对于机器做出判断起到决定性作用?

(最简单的一种方式)类似于对照实验:把每一个component单独拿出来,做一个改造/删除,之后如果network的输出发生巨大的变化,那么表面这个component必不可少。

E.g. 用mask盖住图像来测试网络的输出(控制变量了属于是)

image-20220408085557666

这个实验提供了网络中对于目标的位置信息。

量化component重要性:进阶的一种方式(计算梯度)。

有一张图片将其写做,每个代表一个pixel。

👆的启示:Explainable Machine Learning是非常重要的。

Limitation:Noisy Gradient

有没有什么方法能把Saliency Map画得更好呢?

流程:在图片上面加上不同的噪声,得到若干张不同加上噪声的图片,从而获得数张Saliency Map,平均起来就得到SmoothGrad的结果。

光看梯度(Gradient)并不能反映component的重要性或者说梯度(Gradient)并不能总是反映component的重要性

E.g. image-20220408105854342

鼻子越长,大象的可能性趋近不变,这是得到的偏微分趋近于0,难道这就说明了鼻子长度的变化与是否大象可能性的变化无关?显然是错误的。

所以光看偏微分的结果没法完全反映component的重要性

改善的方法:Integrated Gradient(IG)https://arxiv.org/abs/1611.02639

How a network processes the input data?——network是怎么处理这个输入的呢

Global Explanation

以图片分类为例,假定我们还没有开始对数据集进行classify,我们需要对classify整个model的参数特征做出解释(例如说什么样的东西可以是一只猫,如果分类任务中包含猫咪的话),对一个network而言一只猫应该长什么样子。而不是针对指定数据(点/图片)的进行分析或结果。

E.g.假定已有一个train好的CNN,里面有若干层卷积层(Conv Layer),有一堆filter。一张图片作为输入,conv layer输出一个feature map,那每一个filter都会给我们一个metric

image-20220408154233822

假设输入一张图片,通常是一个矩阵。把图片丢进这个CNN里边,我们会发现某一个filter(假设filter1)在它的feature map里面有几个位置有比较大的值(large values)——意味着这个图片里有很多的pattern是由filter1负责侦测的。

我们想要知道的是对于filter1而言,其理想的pattern的feature map究竟长什么样子——怎么做?答:我们/机器可以创造出一张图片

filter1的feature map是一个矩阵,矩阵里每一个元素记作,我们把要找的那张图片当作一个未知变量,当作我们要训练的那个参数,如上图所示,这个未知变量丢进CNN以后,我们考察的filter的位置所输出的feature map理想情况下矩阵的总和要越大越好。综上,满足

这个不是数据集里面一张特定的图片;我们把丢进CNN中,看filter1输出的feature map,值越大越好。(原理:gradient ascent)

image-20220408230052524

以手写数字分类器为例(digit classifier),我们按照以上方法想找到网络中间的filter的理想的feature map长什么样,也可以看到网络最后的output(令各自分类置信度最高)。

image-20220408230707159

实际上,filter确实表达出其想看到的feature,例如横线、直线、斜直线等

image-20220408230732858

可是,对于分别设置高置信度maximum出来(创造出来的)图片,看起来实在没什么区别!

如果我们想要图片得到人可以想象(肉眼识别的)数字图像,我们需要加一点限制。举例来说,我们加一个对数字的期望,这个表示how likely is a digit,这里的

image-20220408231234323

在文献https://arxiv.org/abs/1506.06579,爆调超参数,各种正则化……“反推”得到

image-20220408231356423

有效的一招:Constraint from Generator

Outlook

用一个比较简单的模型来模仿比较复杂的模型,如果我们知道简单模型的行为,那么也可以由此知道复杂模型的行为。

有点像同态的思想

image-20220408232358931

(弹幕有提到知识蒸馏……)

*Local Interpretable Model-Agnostic Explanations (LIME):阅读文献以及作业